Haptic device for variable bending resistance

ABSTRACT

A haptic glove comprises a glove body including a glove digit corresponding to a phalange of a user hand with the glove digit having a bend location that is located along the glove digit. A haptic apparatus is coupled to the glove body at the bend location with the haptic apparatus comprising a plurality of sheets that are flexible and inextensible and a pressure actuator coupled to one or more of the plurality of sheets. The plurality of sheets are stacked and configured to translate relative to each other along the centerline with bending of the glove digit. The pressure actuator is configured to adjust an applied pressure to the plurality of sheets to adjust friction between the sheets. The adjustment of friction is proportional to a bending resistance of the glove digit.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of co-pending U.S. application Ser.No. 15/703,691, filed on Sep. 13, 2017, which is incorporated byreference in its entirety.

BACKGROUND

The present disclosure generally relates to a system for providinghaptic feedback to a user, and specifically to haptic devices thatprovide variable bending resistance.

Virtual reality (VR), Augmented reality (AR), Mixed reality (MR), andany combination thereof are simulated environments created by computertechnology and presented to a user, such as through a Head-MountedDisplay (HMD) system. Typically, a HMD system includes a HMD headsetthat provides visual and audio information to the user. Conventional HMDsystems create virtual hands in the simulated environment and use a handtracking system to track motion and positions of the user's hands.However, many conventional hand tracking systems are based on opticalsystems, and such systems may not capture accurate poses of a user'shand. For example, the hand may be positioned such that finger positionis obscured by another part of the hand.

SUMMARY

To provide a more immersive experience in an artificial reality system,a haptic glove may apply a resistive force to a user's hand to simulatea user's interaction with a virtual object. For example, the system maydetect that a user has reached out to grab a virtual object. This may bedetected by sensors integrated into a haptic glove, sensors external toa haptic glove, or some combination thereof. As the user closes her handto grasp the virtual object, the glove may generate an opposing forcethat resists the closing of the hand. In this way, the haptic glovesimulates the experience of grasping the virtual object. The hapticglove may also produce force feedback corresponding to a real-worldmachine controlled by the user.

Embodiments relate to a system and a method for providing hapticfeedback to a user by controlling a bending resistance of a hapticassembly in touch (directly or indirectly) with a user. The amount ofbending resistance relayed to a user can be perceived as a measure ofrigidity. For example, a hard material when touched by a user has littlegive (i.e., minimal bending ability). In contrast, a soft material maygive substantially when touched by the user using the same amount ofpressure, and accordingly, a user's finger will be able to bend withgreater ease in touching a soft material compared to a hard material. Inorder to emulate a user touching a material of a particular rigidity,the haptic assembly can be actuated such that the bending resistance ata particular location can vary corresponding to the material rigidity.The haptic assembly can produce varying degrees of rigidity to such thata user touching a virtual object in a virtual space with a particularrigidity can be emulated. Emulating herein refers to providing a tactileperception to a user that the user is in physical contact with a virtualobject of a particular rigidity.

In one embodiment, the system includes a haptic glove for providinghaptic feedback. The haptic glove includes haptic apparatuses coupled toone or more digits of the glove, a haptic controller, and one or moresignaling pathways that couple the haptic controller to the hapticapparatuses. The haptic apparatuses restrain bending ability in eachlocation a haptic apparatus is coupled to the glove body. The hapticcontroller controls the actuation of the one or more haptic apparatusesthrough one or more signaling pathways coupled between the one or morehaptic apparatuses and the haptic controller.

In one aspect, the haptic glove is implemented in a HMD system forproviding VR experience, AR experience, MR experience, or anycombination thereof to a user. The HMD system includes a head mounteddisplay for presenting an image of a virtual environment to the useraccording to positional information of the head mounted system. Inaddition, the HMD system includes the haptic glove for providing hapticfeedback to a user. The HMD system updates the image of the 3-D virtualenvironment according to a positional information of the head mounteddisplay and/or haptic glove. The HMD system also provides hapticfeedback to the user via the haptic glove. The haptic glove with the oneor more amenable haptic apparatuses disclosed herein can provide hapticfeedback simulating different levels of rigidity to emulate a usercontacting virtual objects of different materials. Hence, the user canperceive a feeling of touching an imaginary object with certainrigidity, and enjoy a better immersive VR, AR, or MR experience.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of a haptic glove, in accordance with anembodiment.

FIG. 2A is a cross sectional view of a haptic apparatus with a pressureactuator allowing bending, in accordance with an embodiment.

FIG. 2B is a cross sectional view of a haptic apparatus with a pressureactuator restricting bending, in accordance with an embodiment.

FIG. 3 is a block diagram of a system environment including a HMDsystem, in accordance with an embodiment.

FIG. 4 is a flow chart illustrating a process of providing hapticfeedback responsive to a virtual touch event in a virtual space, inaccordance with an embodiment.

DETAILED DESCRIPTION OF THE DRAWINGS

Embodiments of the invention may include or be implemented inconjunction with an artificial reality system. Artificial reality is aform of reality that has been adjusted in some manner beforepresentation to a user, which may include, e.g., a virtual reality (VR),an augmented reality (AR), a mixed reality (MR), a hybrid reality, orsome combination and/or derivatives thereof. Artificial reality contentmay include completely generated content or generated content combinedwith captured (e.g., real-world) content. The artificial reality contentmay include video, audio, haptic feedback, or some combination thereof,and any of which may be presented in a single channel or in multiplechannels (such as stereo video that produces a three-dimensional effectto the viewer). Additionally, in some embodiments, artificial realitymay also be associated with applications, products, accessories,services, or some combination thereof, that are used to, e.g., createcontent in an artificial reality and/or are otherwise used in (e.g.,perform activities in) an artificial reality. The artificial realitysystem that provides the artificial reality content may be implementedon various platforms, including a head-mounted display (HMD) connectedto a host computer system, a standalone HMD, a mobile device orcomputing system, or any other hardware platform capable of providingartificial reality content to one or more viewers

Example Haptic Feedback Device

FIG. 1 is a perspective view of a haptic glove 100, in accordance withan embodiment. The haptic glove 100 includes a glove body 110, locators120, a position sensor 130, an inertial measurement unit (IMU) 140, asignaling pathway 150, three haptic apparatuses 160, and a hapticcontroller 170. In other embodiments, the haptic glove 100 comprisesadditional or fewer elements than those described herein. Similarly, thefunctions can be distributed among the elements and/or differententities in a different manner than is described here. For example, inthe some embodiments, the haptic controller 170 may be located on aconsole.

The glove body 110 is an apparatus covering a hand. The glove body 110is a wearable garment that is coupled to the locators 120, the positionsensor 130, the IMU 140, the signaling pathway 150, the hapticapparatuses 160, and the haptic controller 170. In one embodiment, theposition sensor 130 is coupled to a corresponding tip of the glove body110 (e.g., a portion corresponding to a fingertip); three hapticapparatuses 160 are coupled to three corresponding glove digit portions(e.g., a portion corresponding to a distal phalanx, a portioncorresponding to an intermediate phalanx, and a portion corresponding toa proximal phalanx) of the glove body 110; and the haptic controller 170is coupled to a portion of the glove body 110 corresponding to a back ofa hand (e.g., dorsal side). The signaling pathway 150 is coupled betweenthe haptic controller 170 and the haptic apparatuses 160. In oneembodiment, one or more of these components are placed beneath an outersurface of the glove body 110, thus are not visible from the outside.Additionally or alternatively, some of these components are placed on anouter surface of the glove body 110, and are visually detectable.

The glove body 110 illustrated in FIG. 1 is merely an example, and indifferent embodiments, the glove body 110 includes fewer, more ordifferent components than shown in FIG. 1. For example, in otherembodiments, the number of haptic apparatuses 160 can vary (e.g., one ormore on each finger); there can be multiple signaling pathways 150coupled to the haptic controller 170 and the plurality of hapticapparatuses 160. In addition, in other embodiments, there may bemultiple position sensors 130 provided. Also, in one or moreembodiments, one or more haptic apparatuses 160 and the hapticcontroller 170 can be positioned in different portions of the glove body110. For another example, the haptic apparatus 160 is coupled to wraparound a portion of the entire glove digit of the glove body 110. Foranother example, the haptic controller 170 is coupled to a differentportion of the glove body 110 corresponding to, for example a wrist or apalm.

The locators 120 are objects located in specific positions on the glovebody 110 relative to one another. A locator 120 may be a light emittingdiode (LED), a corner cube reflector, a reflective marker, a type oflight source that contrasts with an environment in which the hapticglove 100 operates, or some combination thereof. In embodiments wherethe locators 120 are active (i.e., an LED or other type of lightemitting device), the locators 120 may emit light in the visible band(˜380 nm to 750 nm), in the infrared (IR) band (˜750 nm to 1 mm), in theultraviolet band (10 nm to 380 nm), some other portion of theelectromagnetic spectrum, or some combination thereof.

The position sensor 130 generates one or more measurement signals inresponse to motion of the haptic glove 100. The position sensor 130 maybe located external to the IMU 140, internal to the IMU 140, or somecombination thereof.

The IMU 140 is an electronic device that generates IMU data. Based onthe one or more measurement signals from one or more position sensors130, the IMU 140 generates IMU data indicating an estimated position ofthe haptic glove 100 relative to an initial position of the haptic glove100.

The signaling pathway 150 passes a haptic actuation signal from thehaptic controller 170 to the haptic apparatus 160. The signaling pathway150 is coupled to the haptic controller 170 and all three hapticapparatuses 160, in accordance to this embodiment. A signaling pathway150 may be, for example conductive materials for transferring electricalsignals, tubes for transferring pneumatic pressure, some otherconnective link to a haptic apparatus 160, or some combination thereof.In other embodiments, each signaling pathway 150 can be coupled to oneor more haptic apparatuses 160. In another embodiment, there can bemultiple signaling pathways 150.

The haptic apparatus 160 provides haptic feedback emulating a usertouching a virtual object with a corresponding rigidity. In oneembodiment, the haptic apparatus 160 is actuated according to a hapticactuation signal received through the signaling pathway 150 from thehaptic controller 170. A haptic actuation signal is a pneumatic and/orelectrical signal that causes the haptic apparatus 160 to achieve aspectrum of resistance to bending at a bend location coupled to thehaptic apparatus 160. In one embodiment, the haptic apparatus 160 iscoupled to a glove digit of the glove body 110 (e.g., a distal phalanx),allowing the spectrum of resistance to bending of the glove digit. Inanother embodiment, the haptic apparatus 160 covers the entire glovebody 110 or is placed on other parts (e.g., area corresponding todifferent phalanx) of the glove body 110. Example materials that thehaptic apparatus 160 is constructed from include silicone, textiles,thermoset/thermoplastic polymers, thin steel, or some combinationthereof.

The haptic controller 170 modulates the haptic apparatus 160 accordingto a rigidity of a virtual object. The haptic controller 170 may be anelectric board or a fluid reserve, or some other device that controlsone or more haptic apparatuses 160 via corresponding signaling pathways150. The haptic controller 170 transmits a haptic actuation signalthrough the signaling pathway 150 corresponding to the haptic apparatus160 to be actuated. The haptic actuation signal instructs the hapticapparatus 160 to restrict to a degree the bending ability at a bendlocation coupled to the haptic apparatus 160, thus emulating a usercontacting a virtual object. Various structures and operations of thehaptic apparatus 160 are described in detail with respect to FIGS. 2A &2B.

In some embodiments, the haptic controller 170 receives a hapticfeedback signal and actuates the haptic apparatus 160 accordingly. Thehaptic controller 170 converts the haptic feedback signal into a hapticactuation signal that can include specification of the haptic apparatus160 to be actuated and to what degree the haptic apparatus 160 shouldrestrict bending.

In one embodiment, the haptic glove 100 modulates the haptic apparatus160 for providing a haptic feedback by applying fluidic pressure to thehaptic apparatus 160. In one example, the haptic controller 170 is apump or a valve array that adjusts pressure of fluid (compressible orincompressible), and the signaling pathway 150 is a tube that transfersfluid (compressible or incompressible) from the haptic controller 170 tothe haptic apparatus 160. The haptic apparatus 160 may include anexpandable bladder that can change its shape according to the fluid(compressible or incompressible) applied through the signaling pathway150 (e.g., tube) for providing the haptic feedback to the user.

In another embodiment, the haptic glove 100 modulates the hapticapparatus 160 for providing the haptic feedback by applying anelectrical signal to the haptic apparatus 160. In one example, thehaptic controller 170 is a voltage or a current supplier that generatesthe electric signal (e.g., voltage or current), and the signalingpathway 150 is a conductive wire that transfers the electric signal tothe haptic apparatus 160. The haptic apparatus 160 may includeconductive plates and one or more layers including piezo-electricmaterials between the conductive plates. According to the electricsignal, electric fields are generated between the conductive platesadjusting a bending resistance at a bend location coupled to the hapticapparatus 160. The bending resistance provides the haptic feedback tothe user.

FIG. 2A is a cross sectional view of the haptic apparatus 160 allowingbending, in accordance to an embodiment. The haptic apparatus 160comprises a haptic housing 210 including an upper plate 212 and a lowerplate 214, a pressure actuator 220, and polymer sheets 230. The hapticapparatus 160 allows for a translation 240 of the polymer sheets 230. Inother embodiments, the haptic apparatus 160 comprises additional orfewer elements than those described herein.

The haptic housing 210 is a container which houses the pressure actuator220 and a portion of the polymer sheets 230. In this example embodiment,the haptic housing 210 contains an upper plate 212 that is coupled tothe pressure actuator 220 and the lower plate that is coupled to thepolymer sheets 230. The upper plate 212 and the lower plate 214 hold thepolymer sheets 230 from separating and losing contact from one another.The haptic housing 210 is on the order of five to ten millimeters indimensions (e.g., height, width, and length). In other embodiments, thehaptic housing 210 can vary in shape, material, and dimension. Otherembodiments can also vary the configuration of the pressure actuator 220and the polymer sheets 230.

The upper plate 212 and the lower plate 214 are constructed from brakingmaterials which are highly frictional surfaces, in accordance with anembodiment. Upon an applied pressure, the upper plate 212 and the lowerplate 214 clamp down on the portion of the polymer sheets that iscoupled between the upper plate 212 and the lower plate 214. In anotherembodiment, the upper plate 212 and the lower plate 214 are low-frictionsurfaces, such that the upper plate 212 and the lower plate 214 do notrestrict mobility of the polymer sheets 230 relative to the haptichousing 210 but can still restrict bending to varying degrees throughthe translational immobility of each polymer sheet 230 in relation tothe other polymer sheets 230. In another embodiment the lower plate 214is a magnetic plate and the upper plate 212 is a nonmagnetic plate. Thisembodiment can be configured to restrict bending to varying degrees withthe pressure actuator 220 as an electromagnet applying a magnetic forceon the lower plate 214 to clamp the polymer sheets 230. In otherembodiments, the upper plate 212 and the lower plate 214 of the haptichousing 210 can be constructed by a variety of materials includingsilicone, thermoset/thermoplastic polymers, metal, braking materials,piezoelectric materials, or some combination thereof.

The pressure actuator 220 is a flexible and expandable bladder, inaccordance with this embodiment. The pressure actuator 220 resideswithin the haptic housing 210 and is coupled to the upper plate 212 inthe haptic housing 210. The pressure actuator 220 is also coupled to thepolymer sheets 230. The pressure actuator 220 applies a pressure on thepolymer sheets 230. The pressure actuator 220 can adjust the pressureapplied on the polymer sheets 230. While FIG. 2A shows the pressureactuator 220 as a flexible and expandable bladder, in other embodimentsthe pressure actuator 220 can produce a pressure to the polymer sheets230 in various ways such as electrical stimulation of a piezoelectricmaterial to induce pressure from the mechanical stress or electricalstimulation of an electromagnet actuated to pull a metallic plate tosqueeze the polymer sheets. While FIG. 2A does not show the pressureactuator 220 to be coupled with anything but the polymer sheets 230, inother embodiments the pressure actuator 220 can be modulated by thehaptic controller 170 through the signaling pathway 150 to provide thehaptic feedback to the user.

The polymer sheets 230 is comprised of a plurality of polymer sheets.The set of polymer sheets 230 are stacked together, and a portion of theof polymer sheets 230 are within the haptic housing 210 coupled betweenthe upper plate 212 and the lower plate 214, and the remaining portionsof the polymer sheets extend along the glove digit of the glove body 110in opposite directions away from the haptic housing 210, in accordancewith this embodiment. A first polymer sheet 232 is in contact with thepressure actuator 220 and a fourth polymer sheet 234 is in contact withthe lower plate 214 of the haptic housing 210. While FIG. 2A shows thereto be four polymer sheets in the set of polymer sheets 230, in otherembodiments the set of polymer sheets 230 can include any plurality ofsheets. Likewise in other embodiments, the polymer sheets 230 areflexible and inextensible sheets that can be constructed of othermaterials such as silicone, ceramics, thermosets/thermoplastics, or anycombination thereof.

The translational movement 240 of the polymer sheets 230 dictates adegree of bending ability at a bend location coupled to the hapticapparatus 160. FIG. 2A shows an example system of the pressure actuator220 applying a compressive force below a threshold pressure. Below thethreshold pressure, the polymer sheets 230 are unrestricted due to aninsignificant contact force between any two of the polymer sheets 230.With the insignificant contact force between any two of the polymersheets 230, there exists an insignificant friction between any two ofthe polymer sheets 230. As the polymer sheets 230 have no resistance inthe translational movement 240, the sheets can also undergo freebending.

FIG. 2B is a cross sectional view of the haptic apparatus 160 with thepressure actuator 220 applying a pressure 260 above the thresholdpressure thus restricting bending, in accordance with an embodiment. Thehaptic apparatus 160 in this example embodiment shows the pressureactuator 220 applying the pressure 260 on the portion of the polymersheets 230 between the upper plate 212 and the lower plate 214 of thehaptic housing 210 which provides a degree of translational immobilityof each of the polymer sheets 230 relative to any adjacent polymersheets 230 denoted by a translation 245. In other embodiments, thehaptic apparatus 160 comprises additional or fewer elements than thosedescribed herein.

The pressure actuator 220 is applying a compressive pressure 260 abovethe threshold pressure to compress the polymer sheets 230. The pressureactuator 220 is in a relative expansion of the expandable bladdercompared to the pressure actuator 220 in FIG. 2A. The pressure actuator220 and the lower plate 214 exert the compressive pressure 260 on thepolymer sheets 230. In FIG. 2B the pressure actuator 220 and the lowerplate 214 clamp down on the polymer sheets. As described earlier, thecompressive pressure 260 is above the threshold pressure inducing atranslational immobility denoted by a translation 245. The translationalimmobility corresponds to a degree of friction between the polymersheets 230. The degree of friction causing the translation immobility245 is proportional to the compressive pressure 260 applied by thepressure actuator 220. The degree of translational immobility of thepolymer sheets 230 supplies a degree of bending resistance at the bendlocation. The degree of bending resistance at the bend location isassociated with a spectrum of rigidity of the haptic feedback. Thereexists also an upper limit to the compressive pressure 260 that can beapplied by the pressure actuator 220. At or above the upper limit, thereis no translational mobility thus a maximal bending resistance. Inanother embodiment, an intermediate plate is coupled between thepressure actuator 220 and the polymer sheets 230, wherein the pressureactuator 220 exerts a force on the intermediate plate; thus theintermediate plate and the lower plate 214 exert a compressive pressure260 on the polymer sheets 230. In other embodiments the pressureactuator 220 can produce a pressure on the polymer sheets 230 in variousways such as electrical stimulation of a piezoelectric material toinduce pressure from the mechanical stress or electrical stimulation ofan electromagnet actuated to pull a metallic plate to squeeze thepolymer sheets 230.

System Overview

FIG. 3 is a block diagram of a HMD system 300 in which a HMD console 310operates. The HMD system 300 may be for use as an artificial realitysystem. The HMD system 300 shown by FIG. 3 comprises a HMD headset 305,a HMD console 310, an imaging device 335, and a haptic assembly 340.While FIG. 3 shows an example system 300 including one HMD headset 305,one imaging device 335, and one haptic assembly 340 (e.g., a hapticglove 100), in other embodiments any number of these components may beincluded in the HMD system 300. For example, there may be multiple HMDheadsets 305 each having an associated haptic assembly 340 and beingmonitored by one or more imaging devices 335, with each HMD headset 305,haptic assembly 340, and imaging devices 335 communicating with the HMDconsole 310. In alternative configurations, different and/or additionalcomponents may be included in the system environment 300. Similarly, thefunctions can be distributed among the components in a different mannerthan is described here. For example, some or all of the functionality ofthe HMD console 310 may be contained within the HMD headset 305.

The HMD headset 305 may act as an artificial reality display. An MRand/or AR HMD augments views of a physical, real-world environment withcomputer-generated elements (e.g., images, video, sound, etc.). The HMDheadset 305 presents content to a user. Example content includes images,video, audio, or some combination thereof. Audio content may bepresented via a separate device (e.g., speakers and/or headphones)external to the HMD headset 305 that receives audio information from theHMD headset 305, the console 310, or both. The HMD headset 305 includesan electronic display 315, an optics block 318, one or more locators320, one or more position sensors 325, and an IMU 330. The electronicdisplay 315 displays images to the user in accordance with data receivedfrom the HMD console 310.

The optics block 318 magnifies received light from the electronicdisplay 315, corrects optical errors associated with the image light,and the corrected image light is presented to a user of the HMD headset305. An optical element may be an aperture, a Fresnel lens, a convexlens, a concave lens, a filter, or any other suitable optical elementthat affects the image light emitted from the electronic display 315.Moreover, the optics block 318 may include combinations of differentoptical elements. In some embodiments, one or more of the opticalelements in the optics block 318 may have one or more coatings, such asanti-reflective coatings.

The locators 320 are objects located in specific positions on the HMDheadset 305 relative to one another and relative to a specific referencepoint of the HMD headset 305. A locator 320 may be a light emittingdiode (LED), a corner cube reflector, a reflective marker, a type oflight source that contrasts with an environment in which the HMD headset305 operates, or some combination thereof. In embodiments where thelocators 320 are active (i.e., an LED or other type of light emittingdevice), the locators 320 may emit light in the visible band (˜380 nm to750 nm), in the infrared (IR) band (˜750 nm to 1 mm), in the ultravioletband (10 nm to 380 nm), some other portion of the electromagneticspectrum, or some combination thereof.

In some embodiments, the locators 320 are located beneath an outersurface of the HMD headset, which is transparent to the wavelengths oflight emitted or reflected by the locators 320 or is thin enough not tosubstantially attenuate the wavelengths of light emitted or reflected bythe locators 320. Additionally, in some embodiments, the outer surfaceor other portions of the HMD headset 305 are opaque in the visible bandof wavelengths of light. Thus, the locators 320 may emit light in the IRband under an outer surface that is transparent in the IR band butopaque in the visible band.

The IMU 330 is an electronic device that generates IMU data of the HMDheadset 305 based on measurement signals received from one or more ofthe position sensors 325. A position sensor 325 generates one or moremeasurement signals in response to motion of the HMD headset 305.Examples of position sensors 325 include: one or more accelerometers,one or more gyroscopes, one or more magnetometers, another suitable typeof sensor that detects motion, a type of sensor used for errorcorrection of the IMU 330, or some combination thereof. The positionsensors 325 may be located external to the IMU 330, internal to the IMU330, or some combination thereof.

Based on the one or more measurement signals from one or more positionsensors 325, the IMU 330 generates IMU data of the HMD headset 305indicating an estimated position of the HMD headset 305 relative to aninitial position of the HMD headset 305. For example, the positionsensors 325 include multiple accelerometers to measure translationalmotion (forward/back, up/down, left/right) and multiple gyroscopes tomeasure rotational motion (e.g., pitch, yaw, and roll) of the HMDheadset 305. In some embodiments, the IMU 330 rapidly samples themeasurement signals and calculates the estimated position of the HMDheadset 305 from the sampled data. For example, the IMU 330 integratesthe measurement signals received from the accelerometers over time toestimate a velocity vector and integrates the velocity vector over timeto determine an estimated position of a reference point of the HMDheadset 305. Alternatively, the IMU 330 provides the sampled measurementsignals to the HMD console 310, which determines the IMU data of the HMDheadset 305. The reference point of the HMD headset 305 is a point thatmay be used to describe the position of the HMD headset 305. While thereference point of the HMD headset 305 may generally be defined as apoint in space; however, in practice the reference point of the HMDheadset 305 is defined as a point within the HMD headset 305 (e.g., acenter of the IMU 330).

The IMU 330 receives one or more calibration parameters of the HMDheadset 305 from the HMD console 310. As further discussed below, theone or more calibration parameters of the HMD headset 305 are used tomaintain tracking of the HMD headset 305. Based on a receivedcalibration parameter of the HMD headset 305, the IMU 330 may adjust oneor more IMU parameters (e.g., sample rate). In some embodiments, certaincalibration parameters of the HMD headset 305 cause the IMU 330 toupdate an initial position of the reference point of the HMD headset 305so it corresponds to a next calibrated position of the reference pointof the HMD headset 305. Updating the initial position of the referencepoint of the HMD headset 305 as the next calibrated position of thereference point of the HMD headset 305 helps reduce accumulated errorassociated with the determined estimated position. The accumulatederror, also referred to as drift error, causes the estimated position ofthe reference point of the HMD headset 305 to “drift” away from theactual position of the reference point of the HMD headset 305 over time.

The haptic assembly 340 is an apparatus for providing haptic feedback tothe user. The haptic assembly 340 includes locators 370, one or moreposition sensors 375, and an inertial measurement unit (IMU) 380, inaccordance with an embodiment. In some embodiments, the locators 370,one or more position sensors 375, an IMU 380 are employed to determine aposition or movement of the haptic assembly 340. In other embodiments,the haptic assembly 340 contains additional or fewer components. Forexample, the haptic assembly 340 does not contain an IMU 380, but thelocators 370 and the position sensors 375 provide positional dataregarding the haptic assembly 340. In addition, the haptic assembly 340receives, from the HMD console 310, a haptic feedback signalcorresponding to haptic feedback emulating a user contacting a virtualobject with certain rigidity. The haptic assembly 340 provides tactileperception including a rigidity of a virtual object to a user inaccordance with the haptic feedback signal received from the HMD console310. In an embodiment, the haptic assembly 340 is a haptic glove 100that receives the feedback signal and provides the tactile perception tothe user.

In another embodiment, the haptic feedback signal indicates a positionor a portion of the haptic assembly 340 to be actuated, and an amount ofactuation of the position or the portion of the haptic assembly 340 forproviding haptic feedback. In this embodiment, the amount of actuationis determined by, e.g., the HMD console 310, according to a rigidity ofa virtual object in contact with the haptic assembly 340. The hapticassembly 340 provides tactile perception including a rigidity of avirtual object to a user at the position or portion of the hapticassembly 340 according to the amount of actuation indicated by thehaptic feedback signal. In accordance to the embodiment shown in FIGS. 1& 2, the haptic feedback signal is received by the haptic glove 100.

The locators 370 are objects located in specific positions on the hapticassembly 340 relative to one another and relative to a specificreference point of the haptic assembly 340 on the haptic assembly 340. Alocator 370 is substantially similar to a locator 320 except that alocator 370 is part of the haptic assembly 340. Additionally, in someembodiments, the outer surface or other portions of the haptic assembly340 are opaque in the visible band of wavelengths of light. Thus, thelocators 370 may emit light in the IR band under an outer surface thatis transparent in the IR band but opaque in the visible band. Theconfiguration and operation of the locators 370 are similar to thelocators of 120 of the haptic glove 100 of FIG. 1.

A position sensor 375 generates one or more measurement signals inresponse to motion of the haptic assembly 340. The position sensors 375are substantially similar to the positions sensors 325, except that theposition sensors 375 are part of the haptic assembly 340. The positionsensors 375 may be located external to the IMU 380, internal to the IMU380, or some combination thereof. The configuration and operation of theposition sensor 375 is similar to the position sensor 130 of the hapticglove 100 of FIG. 1.

Based on the one or more measurement signals from one or more positionsensors 375, the IMU 380 generates IMU data of the haptic assembly 340indicating an estimated position of the haptic assembly 340 relative toan initial position of the haptic assembly 340. For example, theposition sensors 375 include multiple accelerometers to measuretranslational motion (forward/back, up/down, left/right) and multiplegyroscopes to measure rotational motion (e.g., pitch, yaw, and roll) ofthe haptic assembly 340. In some embodiments, the IMU 380 rapidlysamples the measurement signals and calculates the estimated position ofthe haptic assembly 340 from the sampled data. For example, the IMU 380integrates the measurement signals received from the accelerometers overtime to estimate a velocity vector and integrates the velocity vectorover time to determine an estimated position of a reference point of thehaptic assembly 340. Alternatively, the IMU 380 provides the sampledmeasurement signals to the HMD console 310, which determines the IMUdata of the haptic assembly 340. The reference point of the hapticassembly 340 is a point that may be used to describe the position of thehaptic assembly 340. While the reference point of the haptic assembly340 may generally be defined as a point in space; however, in practicethe reference point of the haptic assembly 340 is defined as a pointwithin the haptic assembly 340 (e.g., a center of the IMU 380). Theconfiguration and operation of the IMU 380 is similar to the IMU 140 ofthe haptic glove 100 of FIG. 1.

The IMU 380 receives one or more calibration parameters of the hapticassembly 340 from the HMD console 310. As further discussed below, theone or more calibration parameters of the haptic assembly 340 are usedto maintain tracking of the haptic assembly 340. Based on a receivedcalibration parameter of the haptic assembly 340, the IMU 380 may adjustone or more IMU parameters (e.g., sample rate). In some embodiments,certain calibration parameters of the haptic assembly 340 cause the IMU380 to update an initial position of the reference point of the hapticassembly 340 so it corresponds to a next calibrated position of thereference point of the haptic assembly 340. Updating the initialposition of the reference point of the haptic assembly 340 as the nextcalibrated position of the reference point of the haptic assembly 340helps reduce accumulated error associated with the determined estimatedposition. The configuration and operation of the IMU 380 is similar tothe IMU 140 of the haptic glove 100 of FIG. 1.

The haptic assembly 340 provides haptic feedback including a rigidity ofa virtual object in contact. In one embodiment, the haptic assembly 340is a haptic glove 100 through which the HMD console 310 can detect auser hand movement and provide tactile perception to the user hand.Moreover, the haptic glove 100 receives a haptic feedback signalindicating the position or the portion to be actuated and the amount ofactuation corresponding to the rigidity of the virtual object.

The imaging device 335 generates imaging data in accordance withcalibration parameters received from the HMD console 310. Imaging data(herein also referred to as “imaging information”) of the HMD headsetincludes one or more images showing observed positions of the locators320 associated with the HMD headset 305 that are detectable by theimaging device 335. Similarly, imaging data of the haptic assembly 340includes one or more images showing observed positions of the locators370 associated with the haptic assembly 340 that are detectable by theimaging device 335. In one aspect, the imaging data includes one or moreimages of both the HMD headset 305 and haptic assembly 340. The imagingdevice 335 may include one or more cameras, one or more video cameras,any other device capable of capturing images including one or more ofthe locators 320 and 370, or any combination thereof. Additionally, theimaging device 335 may include one or more filters (e.g., used toincrease signal to noise ratio). The imaging device 335 is configured todetect light emitted or reflected from locators 320 and 370 in a fieldof view of the imaging device 335. In embodiments where the locators 320and 370 include passive elements (e.g., a retroreflector), the imagingdevice 335 may include a light source that illuminates some or all ofthe locators 320 and 370, which retro-reflect the light towards thelight source in the imaging device 335. Imaging data is communicatedfrom the imaging device 335 to the HMD console 310, and the imagingdevice 335 receives one or more calibration parameters from the HMDconsole 310 to adjust one or more imaging parameters (e.g., focallength, focus, frame rate, ISO, sensor temperature, shutter speed,aperture, etc.).

The HMD console 310 provides media to the HMD headset 305 forpresentation to the user in accordance with information received fromone or more of: the imaging device 335, the HMD headset 305, and thehaptic assembly 340. The HMD console 310 may also instruct the hapticassembly 340 to provide haptic feedback including rigidity of a virtualobject in contact with a user. In the example shown in FIG. 3, the HMDconsole 310 includes a rigidity store 345, a tracking module 350, and aHMD engine 355. Some embodiments of the HMD console 310 have differentmodules than those described in conjunction with FIG. 3. Similarly, thefunctions further described below may be distributed among components ofthe HMD console 310 in a different manner than is described here.

The rigidity store 345 stores rigidity levels of different virtualobjects as a look up table that can be accessed by the HMD console 310when executing one or more applications. The rigidity of a virtualobject may be described according to a selected rigidity level from apredetermined set of rigidity levels. The predetermined set of rigiditylevels may be obtained, for example, based on Rockwell hardness scale.Different rigidity levels may be assigned to different virtual objectsaccording to empirical experiments. For example, virtual rubber may havea low rigidity level assigned (e.g., ‘10’ out of ‘100’), whereas virtualsteel may have a high rigidity level assigned (e.g., ‘85’ out of ‘100’).In one example, the highest rigidity level (e.g., ‘100’) corresponds toa configuration of the haptic assembly 340 causing a maximum actuation(e.g., minimum contact with the user) possible for the haptic assembly340. In another example, the lowest rigidity level (e.g., ‘0’)corresponds to a configuration of the haptic assembly 340 causing aminimum actuation (e.g., maximum contact with the user) possible for thehaptic assembly 340. Intermediate rigidity levels correspond toconfigurations of the haptic assembly 340 causing corresponding amountof actuation of the haptic assembly 340 between the maximum actuationand the minimum actuation.

The tracking module 350 calibrates the HMD system 300 using one or morecalibration parameters and may adjust one or more calibration parametersto reduce error in determination of the position of the HMD headset 305and/or the haptic assembly 340.

The tracking module 350 tracks movements of the HMD headset 305 usingimaging information of the HMD headset 305 from the imaging device 335.The tracking module 350 determines positions of a reference point of theHMD headset 305 using observed locators from the imaging information anda model of the HMD headset 305. The tracking module 350 also determinespositions of a reference point of the HMD headset 305 using positioninformation from the IMU information of the HMD headset 305.Additionally, in some embodiments, the tracking module 350 may useportions of the IMU information, the imaging information, or somecombination thereof of the HMD headset 305, to predict a future locationof the headset 305. The tracking module 350 provides the estimated orpredicted future position of the HMD headset 305 to the HMD engine 355.

In addition, the tracking module 350 tracks movements of the hapticassembly 340 using imaging information of the haptic assembly 340 fromthe imaging device 335. The tracking module 350 determines positions ofa reference point of the haptic assembly 340 using observed locatorsfrom the imaging information and a model of the haptic assembly 340. Thetracking module 350 also determines positions of a reference point ofthe haptic assembly 340 using position information from the IMUinformation of the haptic assembly 340. Additionally, in someembodiments, the tracking module 350 may use portions of the IMUinformation, the imaging information, or some combination thereof of thehaptic assembly 340, to predict a future location of the haptic assembly340. The tracking module 350 provides the estimated or predicted futureposition of the haptic assembly 340 to the HMD engine 355.

The HMD engine 355 executes applications within the system environment300 and receives position information, acceleration information,velocity information, predicted future positions, or some combinationthereof of the HMD headset 305 from the tracking module 350. Based onthe received information, the HMD engine 355 determines content toprovide to the HMD headset 305 for presentation to the user. Forexample, if the received information indicates that the user has lookedto the left, the HMD engine 355 generates content for the HMD headset305 that mirrors the user's movement in a virtual environment.Additionally, the HMD engine 355 performs an action within anapplication executing on the HMD console 310 in response to detecting amotion of the haptic assembly 340 and provides feedback to the user thatthe action was performed. In one example, the HMD engine 355 instructsthe HMD headset 305 to provide visual or audible feedback to the user.In another example, the HMD engine 355 instructs the haptic assembly 340to provide haptic feedback including a rigidity of a virtual object tothe user.

In addition, the HMD engine 355 receives position information,acceleration information, velocity information, predicted futurepositions, or some combination thereof of the haptic assembly 340 fromthe tracking module 350 and determines whether a virtual touch eventoccurred. A virtual touch event herein refers to an event of a usercontacting a virtual object in a virtual space. For example, an image ofa virtual object is presented to the user on the HMD headset 305.Meanwhile, the HMD engine 355 collectively analyzes positions ofmultiple sensors of the haptic assembly 340 through the tracking module350, and generates a three dimensional mapping of the haptic assembly340 describing the position and the shape of the haptic assembly 340.The three dimensional mapping of the haptic assembly 340 describescoordinates of various parts of the haptic assembly 340 in a virtualspace corresponding to physical positions of the parts of the hapticassembly 340 in reality. Responsive to the user performing an action tograb the virtual object or the user being contacted by the virtualobject, the HMD engine 355 determines that the virtual touch eventoccurred.

In one embodiment, the HMD engine 355 compares coordinates of a virtualobject and a coordinate of the haptic assembly 340 in a virtual space todetermine whether a virtual touch event occurred. The HMD engine 355obtains a coordinate of the virtual object in a virtual space, inaccordance with an image presented via the HMD headset 305.Additionally, the HMD engine 355 obtains a coordinate of the hapticassembly 340 (e.g., haptic glove) corresponding to a physical positionof the HMD haptic assembly 340 from the tracking module 350 or the threedimensional mapping of the haptic assembly 340. Then, the HMD engine 355compares the coordinate of the virtual object in the virtual space andthe coordinate of the haptic assembly 340 in the virtual space. Forexample, if two coordinates of the virtual object and the hapticassembly 340 overlap or are approximate to each other within apredetermined distance for a predetermined amount of time (e.g., 1second), the HMD console 310 determines the virtual touch eventoccurred.

In one embodiment, the HMD engine 355 generates a haptic feedback signalin responsive to the virtual touch event detected. Responsive todetecting the virtual touch event, the HMD engine 355 determines arigidity of the virtual object in contact with the user. In one aspect,the haptic feedback signal indicates which portion (e.g., a coordinateor a position) of the haptic assembly 340 to provide haptic feedback andthe rigidity of the virtual object. The HMD engine 355 obtains thepredetermined rigidity corresponding to the virtual object from therigidity store 345. For example, the HMD engine 355 determines whichvirtual object is in contact with the user (e.g., a ball, a pillow, apiece of wood, etc.) and obtains the rigidity corresponding to thedetermined virtual object from the rigidity store 345. Moreover, the HMDengine 355 determines which part of the virtual object is in contact(e.g., an index finger), and generates the haptic feedback signalaccordingly. In another aspect, the HMD engine 355 determines an amountof actuation corresponding to the rigidity level, and generates thehaptic feedback signal indicating the determined amount of actuationinstead of the rigidity level. The HMD engine 355 provides the hapticfeedback signal to the haptic assembly 340 for executing the hapticfeedback. In accordance with an embodiment, the haptic controller 170 ofFIG. 1 receives the haptic feedback signal indicating the coordinate ofthe haptic glove 100 to provide haptic feedback and the amount ofrigidity or bending resistance the haptic apparatus 160 should apply.The haptic controller 170 sends a haptic actuation signal to the hapticapparatus 160 corresponding to the indicated position/portion to beactuated and the degree of bending resistance. The haptic apparatus 160provides the haptic feedback by adjusting the degree of bendingresistance.

FIG. 4 is a flow chart illustrating a process 400 of providing hapticfeedback responsive to a virtual touch event in a virtual space, inaccordance with an embodiment. In one embodiment, the process of FIG. 4is performed by a console (e.g., HMD console 310 of FIG. 3). Otherentities may perform some or all of the steps of the process in otherembodiments. Likewise, embodiments may include different and/oradditional steps, or perform the steps in different orders.

The console determines 410 a virtual touch event. In one embodiment, theconsole receives IMU data from the haptic assembly (e.g., the hapticassembly 340 of FIG. 3 or the haptic glove 100 of FIG. 1) and/or imagingdata from the imaging device (e.g., imaging device 335 of FIG. 3), andthen determines a haptic feedback to the haptic assembly. In oneapproach, the console obtains 3-D map of the user hand describingcoordinates of various parts of the haptic glove in a virtual spacecorresponding to physical positions of the parts of the haptic glove inreality based on the IMU data and/or the imaging data. The consolecompares the coordinate of the virtual object in the virtual space andthe coordinate of the haptic glove in the virtual space to determinewhether a virtual touch event occurred. Responsive to determining thevirtual touch event occurred, the console determines 420 a coordinate ofthe haptic assembly corresponding to the virtual touch event. Forexample, responsive to the user pressing a plush ball in a virtual spacewith an index finger, the console determines such virtual touch eventoccurred, and identifies a portion of the haptic assembly correspondingto the index finger.

The console determines 430 a rigidity of the virtual object. Therigidity of a virtual object can be obtained from a list of virtualobjects and corresponding rigidities that are predetermined (e.g., via alook-up table). Continuing on the above example, the console determinesa rigidity of the plush ball (e.g., ‘10’ out of ‘100’, where ‘100’indicates the highest rigidity).

The console generates 440 a haptic feedback signal describing details ofthe haptic feedback to be provided, according to the determined rigidityand coordinate. In one embodiment, the haptic feedback signal indicateswhich haptic apparatus should be actuated corresponding to thecoordinate of the haptic assembly and a rigidity level.

The console transmits 450 the haptic feedback signal 440 to the hapticassembly (e.g., the haptic assembly of 340). In accordance with anembodiment, the haptic assembly is a haptic glove 100 of FIG. 1 with ahaptic controller 170 which is the destination of the haptic feedbacksignal 440.

ADDITIONAL CONFIGURATION INFORMATION

The foregoing description of the embodiments of the disclosure has beenpresented for the purpose of illustration; it is not intended to beexhaustive or to limit the disclosure to the precise forms disclosed.Persons skilled in the relevant art can appreciate that manymodifications and variations are possible in light of the abovedisclosure.

Some portions of this description describe the embodiments of thedisclosure in terms of algorithms and symbolic representations ofoperations on information. These algorithmic descriptions andrepresentations are commonly used by those skilled in the dataprocessing arts to convey the substance of their work effectively toothers skilled in the art. These operations, while describedfunctionally, computationally, or logically, are understood to beimplemented by computer programs or equivalent electrical circuits,microcode, or the like. Furthermore, it has also proven convenient attimes, to refer to these arrangements of operations as modules, withoutloss of generality. The described operations and their associatedmodules may be embodied in software, firmware, hardware, or anycombinations thereof.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In one embodiment, asoftware module is implemented with a computer program productcomprising a computer-readable medium containing computer program code,which can be executed by a computer processor for performing any or allof the steps, operations, or processes described.

Embodiments of the disclosure may also relate to an apparatus forperforming the operations herein. This apparatus may be speciallyconstructed for the required purposes, and/or it may comprise ageneral-purpose computing device selectively activated or reconfiguredby a computer program stored in the computer. Such a computer programmay be stored in a non-transitory, tangible computer readable storagemedium, or any type of media suitable for storing electronicinstructions, which may be coupled to a computer system bus.Furthermore, any computing systems referred to in the specification mayinclude a single processor or may be architectures employing multipleprocessor designs for increased computing capability.

Embodiments of the disclosure may also relate to a product that isproduced by a computing process described herein. Such a product maycomprise information resulting from a computing process, where theinformation is stored on a non-transitory, tangible computer readablestorage medium and may include any embodiment of a computer programproduct or other data combination described herein.

Finally, the language used in the specification has been principallyselected for readability and instructional purposes, and it may not havebeen selected to delineate or circumscribe the inventive subject matter.It is therefore intended that the scope of the disclosure be limited notby this detailed description, but rather by any claims that issue on anapplication based hereon. Accordingly, the disclosure of the embodimentsis intended to be illustrative, but not limiting, of the scope of thedisclosure, which is set forth in the following claims.

What is claimed is:
 1. A haptic apparatus comprising: a stackedplurality of sheets that are flexible and inextensible; and a pressureactuator coupled to one or more sheets of the stacked plurality ofsheets, the pressure actuator configured to adjust a pressure applied tothe one or more sheets to adjust friction between some sheets of thestacked plurality of sheets, wherein a resistance to bending a garmentcoupled to the haptic apparatus is based in part on the friction betweenat least some of the stacked plurality of sheets.
 2. The hapticapparatus of claim 1, wherein a sheet of the stacked plurality of sheetsis composed of a polymer.
 3. The haptic apparatus of claim 1, whereinthe stacked plurality of sheets includes a first sheet, and the hapticapparatus further comprises: an inflexible plate with a braking surface,the braking surface adjacent to a surface of the first sheet.
 4. Thehaptic apparatus of claim 1, wherein the pressure actuator comprises anexpandable bladder that controls the pressure applied to an intermediateplate coupled between the expandable bladder and the stacked pluralityof sheets, wherein the intermediate plate applies a variable pressure tothe one or more sheets of the stacked plurality of sheets based in parton the pressure applied by the expandable bladder, the expandablebladder has a plurality of sizes and each size of the plurality of sizescorresponds to a different pressure applied to the one or more sheets ofthe stacked plurality of sheets.
 5. The haptic apparatus of claim 1,wherein the pressure actuator comprises a controllable electromagnet anda metallic plate that is positioned between the electromagnet and theone or more sheets, and the electromagnet controls the pressure appliedto the one or more sheets by applying a magnetic force to the metallicplate.
 6. The haptic apparatus of claim 1, wherein the pressure actuatorcomprises a controllable electromagnet and a metallic plate that ispositioned such that the one or more sheets are between theelectromagnet and the metallic plate, and the electromagnet controls thepressure applied to the one or more sheets by applying a magnetic forceto the metallic plate.
 7. The haptic apparatus of claim 1, wherein thepressure actuator is coupled to an individual sheet of the stackedplurality of sheets.
 8. The haptic apparatus of claim 1, wherein thepressure actuator is coupled to at least two sheets of the stackedplurality of sheets.
 9. A method comprising: determining, by acontroller, a virtual touch event of a user touching a virtual objectlocated at a virtual coordinate in a virtual space; determining, by thecontroller, a coordinate of a haptic assembly proximate to the virtualcoordinate of the virtual touch event, the haptic assembly coupled to agarment worn by the user; determining, by the controller, a rigidity ofthe virtual object; generating, by the controller, a haptic feedbacksignal according to the determined rigidity and the determinedcoordinate of the haptic assembly; and transmitting, by the controller,the haptic feedback signal to the haptic assembly, wherein the hapticfeedback signal, when executed by the haptic assembly, causes the hapticassembly to adjust a pressure applied by a pressure actuator of a hapticapparatus to one or more sheets of a stacked plurality of sheets of thehaptic apparatus to adjust a friction between some sheets of the stackedplurality of sheets, wherein a resistance to bending the garment isbased in part on the friction between at least some of the stackedplurality of sheets.
 10. The method of claim 9, wherein determining thevirtual touch event comprises: tracking a position of the hapticassembly in a real world; mapping the position of the haptic assembly tovirtual coordinates in the virtual space; comparing the virtualcoordinate of the virtual object and the virtual coordinates of thehaptic assembly; and determining the virtual touch event occurred basedon the comparison.
 11. The method of claim 9, wherein obtaining therigidity of the virtual object comprises: accessing a table comprising aplurality of virtual objects and an associated rigidity for each virtualobject; and retrieving the rigidity of the virtual object from thetable.
 12. The method of claim 9, wherein the haptic assembly comprisesa plurality of haptic apparatuses coupled to a plurality of locations onthe garment, each haptic apparatus comprising: a stacked plurality ofsheets that are flexible and inextensible; and a pressure actuatorcoupled to one or more sheets of the stacked plurality of sheets, thepressure actuator configured to adjust a pressure applied to the one ormore sheets to adjust friction between some sheets of the stackedplurality of sheets, wherein a resistance to bending the garment isbased in part on the friction between at least some of the stackedplurality of sheets.
 13. The method of claim 12, wherein the hapticfeedback signal indicates one or more haptic apparatuses to be actuated.14. The method of claim 9, wherein the stacked plurality of sheetsincludes a first sheet, and the haptic assembly further comprises: aninflexible plate with a braking surface, the braking surface adjacent toa surface of the first sheet.
 15. A non-transitory computer-readablemedium storing encoded instructions that, when executed by a processor,cause the processor to perform operations comprising: determining, by acontroller, a virtual touch event of a user touching a virtual objectlocated at a virtual coordinate in a virtual space; determining, by thecontroller, a coordinate of a haptic assembly proximate to the virtualcoordinate of the virtual touch event, the haptic assembly coupled to agarment worn by the user; determining, by the controller, a rigidity ofthe virtual object; generating, by the controller, a haptic feedbacksignal according to the determined rigidity and the determinedcoordinate of the haptic assembly; and transmitting, by the controller,the haptic feedback signal to the haptic assembly, wherein the hapticfeedback signal, when executed by the haptic assembly, causes the hapticassembly to adjust a pressure applied by a pressure actuator of a hapticapparatus to one or more sheets of a stacked plurality of sheets of thehaptic apparatus to adjust a friction between some sheets of the stackedplurality of sheets, wherein a resistance to bending the garment isbased in part on the friction between at least some of the stackedplurality of sheets.
 16. The non-transitory computer-readable storagemedium of claim 15, wherein determining the virtual touch eventcomprises: tracking a position of the haptic assembly in a real world;mapping the position of the haptic assembly to virtual coordinates inthe virtual space; comparing the virtual coordinate of the virtualobject and the virtual coordinates of the haptic assembly; anddetermining the virtual touch event occurred based on the comparison.17. The non-transitory computer-readable storage medium of claim 15,wherein obtaining the rigidity of the virtual object comprises:accessing a table comprising a plurality of virtual objects and anassociated rigidity for each virtual object; and retrieving the rigidityof the virtual object from the table.
 18. The non-transitorycomputer-readable storage medium of claim 15, wherein the hapticassembly comprises a plurality of haptic apparatuses coupled to aplurality of locations on the garment, each haptic apparatus comprising:a stacked plurality of sheets that are flexible and inextensible; and apressure actuator coupled to one or more sheets of the stacked pluralityof sheets, the pressure actuator configured to adjust a pressure appliedto the one or more sheets to adjust friction between some sheets of thestacked plurality of sheets, wherein a resistance to bending the garmentis based in part on the friction between at least some of the stackedplurality of sheets.
 19. The non-transitory computer-readable storagemedium of claim 18, wherein the haptic feedback signal indicates one ormore haptic apparatuses to be actuated.
 20. The non-transitorycomputer-readable storage medium of claim 15, wherein the stackedplurality of sheets includes a first sheet, and the haptic assemblyfurther comprises: an inflexible plate with a braking surface, thebraking surface adjacent to a surface of the first sheet.